home *** CD-ROM | disk | FTP | other *** search
/ Freesoft 1997 May / Freesoft_1997-05_cd.bin / inzer / minolta / drivers / WL400 / W3.1 disk 1 / AUTODETC.IN_ / AUTODETC.IN
Text File  |  1994-12-06  |  6KB  |  205 lines

  1. CONST iIN_QUEUE% = 100
  2. CONST iIE_OPEN% = -2
  3. CONST WN_SUCCESS = 0
  4. CONST WN_DEVICE_ERROR = 53
  5. CONST WN_CONNECTION_CLOSED = 54
  6. DECLARE FUNCTION ActionDetectPrintMgr() AS INTEGER
  7. DECLARE FUNCTION ActionDetectPrinter() AS STRING
  8. DECLARE FUNCTION ActionDetectPorts() AS INTEGER
  9. DECLARE SUB CheckCartCode
  10. DECLARE FUNCTION EditPrinterConfigInfo(a&) AS INTEGER
  11. DECLARE FUNCTION CompareVersion(lCode&, InstPrinterName$, InstPort$) AS INTEGER
  12. DECLARE SUB GetSepVersion(a&, b%, c%)
  13. FUNCTION ActionDetectPrintMgr() STATIC AS INTEGER
  14. sz$ = GetIniKeyString (INI_WININI$, INI_WINDOWS$, INI_SPOOLER$)
  15. IF UCASE$(sz$) = UCASE$(INI_YES$) THEN
  16. InstallPM% = YES%
  17. IniKeySpooler% = 3
  18. ELSEIF InstallPM% <> YES% THEN
  19. IniKeySpooler% = DlgNoPrintMgr()
  20. ELSE
  21. IniKeySpooler% = 1
  22. END IF
  23. sz$ = ActionDetectPrinter()
  24. IF UCASE$(sz$) = UCASE$(INI_YES$) THEN
  25. CheckCartCode
  26. ActionDetectPrintMgr = AUTO_INSTALL
  27. ELSE
  28. ActionDetectPrintMgr = PRINTER_SOURCE
  29. END IF
  30. sz$ = ""
  31. END FUNCTION
  32. FUNCTION ActionDetectPrinter STATIC AS STRING
  33. DIM bDoDetectPrinter%
  34. FInitInfoDialog
  35. SetSymbolValue SYM_JCOMM_RETRYS$, "3"
  36. RemoveSymbol SYM_STATUSITEMSTEXT$
  37. bDoDetectPrinter = TRUE
  38. WHILE bDoDetectPrinter
  39. CursorSave% = ShowWaitCursor()
  40. sz$ = UIStartDlg(DLL_CUIDLL$, JUMBO_WAITING, "FInfoDlgProc", HELP_PORT_SEARCH, "FHelpDlgProc")
  41. sz$ = UCASE$( sz$ )
  42. RestoreCursor CursorSave%
  43. CursorSave% = 0
  44. SELECT CASE UCASE$(sz$)
  45. CASE UCASE$(INI_YES$)
  46. bDoDetectPrinter = FALSE
  47. CASE UCASE$(INI_NO$)
  48. bDoDetectPrinter = FALSE
  49. CASE UCASE$(BTN_YES$)
  50. bDoDetectPrinter = FALSE
  51. CASE UCASE$(BTN_NO$)
  52. bDoDetectPrinter = FALSE
  53. CASE UCASE$(BTN_EXIT$)
  54. DoAskQuit
  55. END SELECT
  56. WEND
  57. UIPop 1
  58. FInitInfoDialog
  59. ActionDetectPrinter = sz$
  60. sz$ = ""
  61. END FUNCTION
  62. FUNCTION ActionDetectPorts STATIC AS INTEGER
  63. DIM iSupportNet%
  64. CursorSave% = ShowWaitCursor()
  65. iSupportNet = 0
  66. s$ = STRING$(32,64)
  67. RemoveSymbol SYM_PORTSDESC$
  68. i% = GetListLength(SYM_PORTNAMELIST$)
  69. FOR j% = 5 TO i%
  70. IF GetListItem(SYM_PORTSTATUSLIST$, j%) = VAL_CHKON$ THEN
  71. lpwNetSize.size = 32
  72. r$ = GetListItem(SYM_PORTNAMELIST$, j%)
  73. k% = WNetGetConnection (r$, s$, lpwNetSize)
  74. m% = FarGetPortAddr(j%-1)
  75. IF j% <= 4 THEN
  76. sz$ = GetListItem(SYM_COMPORTEXIST$, j%)
  77. ELSE
  78. sz$ = ""
  79. END IF
  80. IF (m% <> 0) AND (sz$ <> BTN_NO$) THEN
  81. l% = OpenComm(r$, iIN_QUEUE%, iOUT_QUEUE%)
  82. ELSE
  83. l% = -10
  84. END IF
  85. IF l% >= 0 THEN
  86. m% = CloseComm(l%)
  87. END IF
  88. IF (k% = WN_SUCCESS) OR (k% = WN_DEVICE_ERROR) OR (k% = WN_CONNECTION_CLOSED) THEN
  89. ELSEIF l% >= 0 THEN
  90. s$ = MSG_LOCAL$
  91. ELSEIF l% = iIE_OPEN% THEN
  92. s$ = MSG_BUSY$
  93. ELSE
  94. s$ = MSG_NOTPRESENT$
  95. END IF
  96. AddListItem SYM_PORTSDESC$, r$+" "+s$+" "
  97. END IF
  98. NEXT j%
  99. i% = WNetGetCaps(6)
  100. j% = WNetGetCaps(8)
  101. IF ((i% AND 4) <> 0) AND ((j% AND 69) <> 0) THEN
  102. iSupportNet = j%
  103. END IF
  104. s$ = ""
  105. r$ = ""
  106. ActionDetectPorts = iSupportNet
  107. RestoreCursor CursorSave%
  108. CursorSave% = 0
  109. END FUNCTION
  110. SUB CheckCartCode STATIC
  111. DIM lCartCode&, bAtLeastOne%
  112. cItem% = GetListLength(SYM_PORTNAMELIST$)
  113. bAtLeastOne = FALSE
  114. FOR i% = 5 TO cItem%
  115. j% = GetListLength(GetListItem(SYM_PORTNAMELIST$, i%))
  116. IF j% > 2 THEN
  117. list$ = GetListItem(SYM_PORTNAMELIST$, i%)
  118. lCartCode = VAL(GetListItem(list$, 8))
  119. IF CompareVersion(lCartCode, GetListItem(list$, 2), list$) THEN
  120. s$ = STRING$(32,64)
  121. lpwNetSize.size = 32
  122. k% = WNetGetConnection(list$, s$, lpwNetSize)
  123. IF (k% = WN_SUCCESS) OR (k% = WN_DEVICE_ERROR) OR (k% = WN_CONNECTION_CLOSED) THEN
  124. FInitInfoDialog
  125. AddListItem SYM_STATUSITEMSTEXT$, list$
  126. AddListItem SYM_STATUSITEMSTEXT$, list$
  127. InfoDlgAOneButton BTN_OK$, IGNORE_REDIRECT, HELP_IGNORE_REDIRECT
  128. END IF
  129. s$ = ""
  130. bAtLeastOne = TRUE
  131. ELSE
  132. RemoveSymbol list$
  133. END IF
  134. END IF
  135. NEXT i%
  136. IF bAtLeastOne = FALSE THEN
  137. DoInCompatQuit
  138. END IF
  139. list$ = ""
  140. END SUB
  141. FUNCTION EditPrinterConfigInfo(lCartCode AS LONG) STATIC AS INTEGER
  142. EditPrinterConfigInfo = FALSE
  143. IF InvalidVersionCode((lCartCode)) THEN
  144. DlgInvalidVersionCode
  145. ELSE
  146. RemoveSymbol SYM_TEMPLIST$
  147. sz$ = MID$(PortAdding$, 1, 5)
  148. SetSymbolValue sz$, MID$(PortAdding$, 6)
  149. AddListItem sz$, DEFAULT_NAME$
  150. AddListItem sz$, GetListItem(SYM_LISTITEMSOUT$, 1)
  151. MakeListFromSectionKeys SYM_TEMPLIST$, VAL_PRINTERS$
  152. PrinterAddingIndex% = VAL(GetListItem(SYM_LISTITEMSIN$, 2))
  153. SetSymbolValue SYM_TEMPLIST$, GetListItem(SYM_TEMPLIST$, PrinterAddingIndex%)
  154. AddListItem sz$, GetListItem(SYM_TEMPLIST$, 1)
  155. AddListItem sz$, GetListItem(SYM_LISTITEMSOUT$, 2)
  156. AddListItem sz$, "0"
  157. AddListItem sz$, "0"
  158. IF CompareVersion(lCartCode, GetListItem(SYM_LISTITEMSIN$, 1), sz$) THEN
  159. AddListItem sz$, STR$(lCartCode)
  160. ELSE
  161. RemoveSymbol sz$
  162. DoInCompatQuit
  163. END IF
  164. EditPrinterConfigInfo = TRUE
  165. END IF
  166. sz$ = ""
  167. END FUNCTION
  168. FUNCTION CompareVersion(lCode&, InstPrinterName$, InstPort$) STATIC AS INTEGER
  169. DIM iVc%, iRc%, iRh%, iVh%
  170. DIM iRet%
  171. iRet = FALSE
  172. IF lCode <> VAL(DEFAULT_COMPAT$) THEN
  173. GetSepVersion lCode, iVc, iRc
  174. iVh = VAL(DEFAULT_VERSION$)
  175. iRh = VAL(DEFAULT_RH$)
  176. FInitVersionDialog InstPrinterName$, InstPort$
  177. IF (iVh = iVc) THEN
  178. iRet = TRUE
  179. ELSEIF (iVh > iVc) THEN
  180. IF (iVc >= iRh) THEN
  181. InfoDlgAOneButton BTN_CONTINUE$, UPDATE_CART, HELP_UPDATE_CART
  182. iRet = TRUE
  183. ELSE
  184. InfoDlgAOneButton BTN_CONTINUE$, INCOMPAT_CART, HELP_INCOMPAT_CART
  185. END IF
  186. ELSE
  187. IF (iVh >= iRc) THEN
  188. InfoDlgAOneButton BTN_CONTINUE$, UPDATE_DRIVER, HELP_UPDATE_DRIVER
  189. iRet = TRUE
  190. ELSE
  191. InfoDlgAOneButton BTN_CONTINUE$, INCOMPAT_DRIVER, HELP_INCOMPAT_DRIVER
  192. END IF
  193. ENDIF
  194. ELSE
  195. iRet = TRUE
  196. ENDIF
  197. CompareVersion = iRet
  198. END FUNCTION
  199. SUB GetSepVersion(lCode&, iCart%, iHost%) STATIC
  200. DIM lTemp&
  201. lTemp = lCode / 10
  202. iCart = lTemp / 100
  203. iHost = lTemp MOD 100
  204. END SUB
  205.